#include <iostream>
#include "Thread.hpp"

// class threadData
// {
// public:
//   int max;
//   int start;
// };

// void Count(threadData td)
// {
//   for (int i = td.start; i < td.max; i++)
//   {
//     std::cout << "i == " << i << std::endl;
//     sleep(1);
//   }
// }
void print()
{
  while (true)
  {
    std::cout << "hello world" << std::endl;
    sleep(1);
  }
}
int main()
{

  ThreadModule::Thread td(print);
  td.Start();
  std::cout << td.Name() << "is running" << std::endl;
  std::cout << td.gettid() << "    " << td.Getpid() << std::endl;
  sleep(5);

  td.Stop();
  std::cout << "Stop thread : " << td.Name() << std::endl;
  std::cout << td.gettid() << "    " << td.Getpid() << std::endl;

  sleep(5);
  std::cout << td.IsJoinable() << endl;
  td.Join();
  std::cout << "Join thread : " << td.Name() << std::endl;

  return 0;
}